#ifndef TRANSFORMATION_H_
#define TRANSFORMATION_H_
#include <GL/glui.h>

class Transformation {
private:
	float matriz[4][4];

public:
	Transformation(){
		glPushMatrix();
		glLoadIdentity();
		glGetFloatv(GL_MODELVIEW_MATRIX, &matriz[0][0]);
		glPopMatrix();
	};

	void translate(float x,float y, float z){
		glPushMatrix();
		glLoadIdentity();
		glMultMatrixf(&matriz[0][0]);
		glTranslatef(x,y,z);
		glGetFloatv(GL_MODELVIEW_MATRIX, &matriz[0][0]);
		glPopMatrix();
	};

	void rotate(float angle,float x,float y, float z){
		glPushMatrix();
		glLoadIdentity();
		glMultMatrixf(&matriz[0][0]);
		glRotatef(ang,x,y,z);
		glGetFloatv(GL_MODELVIEW_MATRIX, &matriz[0][0]);
		glPopMatrix();
	};

	void scale(float x,float y, float z){
		glPushMatrix();
		glLoadIdentity();
		glMultMatrixf(&matriz[0][0]);
		glScalef(x,y,z);
		glGetFloatv(GL_MODELVIEW_MATRIX, &matriz[0][0]);
		glPopMatrix();
	};

	float* getMatrix() {return &matriz[0][0];};
};


#endif /* TRANSFORMATION_H_ */